#ifndef INTERNALCOMMAND_H
#define INTERNALCOMMAND_H

#include "AbstractCommand.h"
#include "Common/Core.h"


namespace Command {


/**
 * Базовый класс для внутренних команд
 * Данный тип команд используется для внутри программы для изменения AppState из компонентов UI
 */
class InternalCommand : public AbstractCommand
{
public:
	InternalCommand(const QString &name);

private:
	virtual void execute() = 0;

	void processResponse(QByteArray &data);

	bool isWaitingForResponce();
	bool isTimedOut(quint32 msec);
};

}

#endif // INTERNALCOMMAND_H
